# imports
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
import numpy as np
import matplotlib.cm as cm
import matplotlib.colors as cls
from pandas import Series, DataFrame
from mpl_toolkits.axes_grid1.inset_locator import inset_axes, zoomed_inset_axes, mark_inset
import matplotlib.ticker as ticker
from collections import defaultdict, namedtuple
from pandas import ExcelWriter
import xlsxwriter
import pandas as pd
import calendar
# set default font
plt.rcParams["font.family"] = "Times New Roman"
# set seaborn plot style
import seaborn as sns
sns.set()
sns.set_context("paper")
sns.set_style("whitegrid")
# more imports
import pickle
import datetime
from scipy import stats
import itertools
import statistics
def get_ecos():
m = Basemap(projection='cyl')
shpf = m.readshapefile('ecoregions2017/ecoregions2017','ecos',linewidth=0.1)
return m.ecos_info, m.ecos
m = Basemap(projection='cyl')
shpf = m.readshapefile('ecoregions2017/ecoregions2017','ecos',linewidth=0.1)
ecos_info, ecos = m.ecos_info, m.ecos
months = [calendar.month_name[i +1][:3] for i in range(12)]
Eco = namedtuple('Eco', ['name', 'biome_name', 'biome_num', 'area'])
info_dict = {eco['ECO_ID']:Eco(eco['ECO_NAME'],eco['BIOME_NAME'],eco['BIOME_NUM'], eco['SHAPE_AREA']) for eco in ecos_info}
eco_names = []
for i in range(847):
name = info_dict[i].name
if type(name) == bytes:
name = name.decode('latin-1')
eco_names.append(name)
biome_names = []
for i in range(847):
biome_names.append(info_dict[i].biome_name)
biome_nums = []
for i in range(847):
biome_nums.append(info_dict[i].biome_num)
areas = []
for i in range(847):
areas.append(info_dict[i].area)
biome_nums[0] = 0.0
result = {}
for i in range(1,18):
suf = '20{0:02d}'.format(i)
in_file= 'result' + suf
result[suf] = DataFrame(np.load(in_file), columns =months)
for year in result:
result[year].index.name ='Eco_Id'
for year in result:
result[year] = result[year].transpose()
head = DataFrame()
head = head.assign(ECO_NAME = eco_names, BIOME_NUM=biome_nums,BIOME_NAME=biome_names,AREAS= areas).transpose()
result['Atributos'] = head
df_finall = pd.concat(result)
years = [str(y) for y in range(2001,2018)]
# número total de burned pixels por ano
annual_total = [ df_finall[n*12: (n+1) *12].sum().sum() for n in range(17)]
fig, ax = plt.subplots()
labels = years[::2]
ax.plot(years, annual_total)
ax.set_xticks(labels)
ax.set_xticklabels(labels, fontsize=15)
ax.set_title('Interannual Variability',fontsize=15)
labels_x = ax.get_xticklabels()
labels_y = ax.get_yticklabels()
off =ax.get_yaxis().get_offset_text()
off.set_x(-.07)
off.set_fontsize(12)
plt.setp(labels_y,fontsize=15)
plt.ylabel(r"Burned Pixels", fontsize = 15)
plt.tight_layout()
plt.show()
years_float = np.array([float(yr) for yr in years])
fig, ax = plt.subplots()
labels = years[::2]
slope, intercept, r_value, p_value, std_err = stats.linregress(years_float, annual_total)
ax.plot(years, intercept + slope*years_float, 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
ax.plot(years, annual_total,'o')
ax.set_xticks(labels)
ax.set_xticklabels(labels, fontsize=15)
ax.set_title('Interannual Variability',fontsize=15)
labels_x = ax.get_xticklabels()
labels_y = ax.get_yticklabels()
off =ax.get_yaxis().get_offset_text()
off.set_x(-.07)
off.set_fontsize(12)
plt.setp(labels_y,fontsize=15)
plt.ylabel(r"Burned Pixels", fontsize = 15)
plt.legend(prop={'size': 15})
plt.tight_layout()
plt.show()
monthly_total = [ df_finall[n: 12*17:12].sum().sum() for n in range(12)]
fig, ax = plt.subplots()
ax.plot( np.arange(12),monthly_total,'0')
ax.set_xticks(np.arange(12))
ax.set_xticklabels(months, fontsize=15)
ax.set_title('Intra-annual Variability',fontsize=15)
labels_x = ax.get_xticklabels()
labels_y = ax.get_yticklabels()
off =ax.get_yaxis().get_offset_text()
off.set_x(-.07)
off.set_fontsize(12)
plt.setp(labels_y,fontsize=15)
plt.ylabel(r"Burned Pixels", fontsize = 15)
plt.tight_layout()
plt.show()
fig, ax = plt.subplots()
slope, intercept, r_value, p_value, std_err = stats.linregress(np.arange(12), monthly_total)
ax.plot(np.arange(12), intercept + slope*np.arange(12), 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
ax.plot( np.arange(12),monthly_total)
ax.set_xticks(np.arange(12))
ax.set_xticklabels(months, fontsize=15)
ax.set_title('Intra-annual Variability',fontsize=15)
labels_x = ax.get_xticklabels()
labels_y = ax.get_yticklabels()
off =ax.get_yaxis().get_offset_text()
off.set_x(-.07)
off.set_fontsize(12)
plt.setp(labels_y,fontsize=15)
plt.ylabel(r"Burned Pixels", fontsize = 15)
plt.legend(prop={'size': 15})
plt.tight_layout()
plt.show()
ym = itertools.product(years,months)
all_months = [df_finall.iloc[m].sum() for m in range(17*12)]
ymlabels = [ m + ' ' + y[-2:] for y, m in ym]
fig, ax = plt.subplots(figsize=(16,12))
labels = ymlabels[::6]
ax.plot( np.arange(12*17),all_months)
ax.axhline(y=statistics.mean(all_months), color='r', linestyle='--', label='average')
ax.set_xticks(np.arange(0,12*17,6))
ax.set_xticklabels(labels,fontsize=12, rotation=30)
labels_y = ax.get_yticklabels()
plt.setp(labels_y,fontsize=15)
ax.set_title('Intra-monthly Variability',fontsize=15)
plt.legend()
plt.show()
biome_names_dict = dict( (num, name) for num, name in zip(biome_nums, biome_names))
areas_biome = df_finall.loc['Atributos'].loc['AREAS'].groupby(biome_nums).sum()
annual_biome = [ df_finall[n*12: (n+1) *12].sum() for n in range(17)]
annual_biome = [ ab.groupby(biome_nums).sum()/areas_biome for ab in annual_biome]
ar_annual_biome = np.array(annual_biome)
anbio = ar_annual_biome.T
fig, ax = plt.subplots(5,3, figsize =(18,12) , sharey=True)
labels = years[::2]
for i in range(5):
for j in range(3):
slope, intercept, r_value, p_value, std_err = stats.linregress(years_float, anbio[i*3 + j])
ax[i][j].plot(years, intercept + slope*years_float, 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
ax[i][j].plot(years, anbio[i*3 + j], 'o')
ax[i][j].set_xticks(labels)
ax[i][j].set_xticklabels(labels,fontsize=15)
labels_y = ax[i][j].get_yticklabels()
plt.setp(labels_y,fontsize=15)
ax[i][j].set_title(biome_names_dict[i*3 + j],fontsize=15)
ax[i][j].legend(fontsize=15)
fig.tight_layout()
plt.show()
fig, ax = plt.subplots(5,3, figsize =(18,12))
for i in range(5):
for j in range(3):
ax[i][j].plot(years, anbio[i*3 + j])
labels = ax[i][j].get_xticklabels()
ax[i][j].set_title(biome_names_dict[i*3 + j])
plt.setp(labels, rotation=30, fontsize=10)
fig.tight_layout()
plt.show()
monthly_biome = [ df_finall[n: 12*17:12].sum() for n in range(12)]
monthly_biome = [mb.groupby(biome_nums).sum()/areas_biome for mb in monthly_biome]
ar_monthly_biome = np.array(monthly_biome)
monbio = ar_monthly_biome.T
fig, ax = plt.subplots(5,3, figsize =(18,12) , sharey=True)
labels = months
for i in range(5):
for j in range(3):
#slope, intercept, r_value, p_value, std_err = stats.linregress(np.arange(12), monbio[i*3 + j])
#ax[i][j].plot(months, intercept + slope*years_float, 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
ax[i][j].plot(months, monbio[i*3 + j], 'o')
ax[i][j].set_xticks(np.arange(12))
ax[i][j].set_xticklabels(labels,fontsize=15)
labels_y = ax[i][j].get_yticklabels()
plt.setp(labels_y,fontsize=15)
ax[i][j].set_title(biome_names_dict[i*3 + j],fontsize=15)
ax[i][j].legend(fontsize=15)
fig.tight_layout()
plt.show()
fig, ax = plt.subplots(5,3, figsize =(18,12) )
labels = months
for i in range(5):
for j in range(3):
#slope, intercept, r_value, p_value, std_err = stats.linregress(np.arange(12), monbio[i*3 + j])
#ax[i][j].plot(months, intercept + slope*years_float, 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
ax[i][j].plot(months, monbio[i*3 + j], 'o')
ax[i][j].set_xticks(np.arange(12))
ax[i][j].set_xticklabels(labels,fontsize=15)
labels_y = ax[i][j].get_yticklabels()
plt.setp(labels_y,fontsize=15)
ax[i][j].set_title(biome_names_dict[i*3 + j],fontsize=15)
ax[i][j].legend(fontsize=15)
fig.tight_layout()
plt.show()
biome_grouped = df_finall[:12*17].groupby(df_finall.loc['Atributos'].loc['BIOME_NUM'], axis=1)
biomes_pa = biome_grouped.sum()/areas_biome
intra_biome = [ b for a, b in biomes_pa.groupby(biomes_pa.index.get_level_values(level=1),sort=False)]
# intra_biome
labels = years[::2]
for b in range(15):
fig, ax = plt.subplots(4,3, figsize =(20,12) , sharey= True)
fig.suptitle(biome_names_dict[b],fontsize=15)
for i in range(4):
for j in range(3):
data = intra_biome[i*3 + j][b]
slope, intercept, r_value, p_value, std_err = stats.linregress(years_float, data)
ax[i][j].plot(years, intercept + slope*years_float, 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
ax[i][j].plot(years, data, 'o', label='_nolegend_')
ax[i][j].set_xticks(labels)
ax[i][j].set_xticklabels(labels,fontsize=15)
labels_y = ax[i][j].get_yticklabels()
plt.setp(labels_y,fontsize=15)
ax[i][j].set_title(calendar.month_name[i*3 + j +1],fontsize=15)
ax[i][j].legend(fontsize=15)
fig.tight_layout(rect=[0, 0.03, 1, 0.95])
plt.show()
labels = years[::2]
for b in range(15):
fig, ax = plt.subplots(4,3, figsize =(20,12) , sharey= True)
fig.suptitle(biome_names_dict[b],fontsize=15)
for i in range(4):
for j in range(3):
data = intra_biome[i*3 + j][b]
#slope, intercept, r_value, p_value, std_err = stats.linregress(years_float, data)
#ax[i][j].plot(years, intercept + slope*years_float, 'r', label=r"$R^2$: {:5.3f} ".format(r_value**2))
sns.regplot(years_float, data, ax=ax[i][j])
#ax[i][j].set_xticks(labels)
#ax[i][j].set_xticklabels(labels,fontsize=15)
#labels_y = ax[i][j].get_yticklabels()
#plt.setp(labels_y,fontsize=15)
ax[i][j].set_title(calendar.month_name[i*3 + j +1],fontsize=15)
ax[i][j].set_ylabel('')
#ax[i][j].legend(fontsize=15)
#fig.tight_layout(rect=[0, 0.03, 1, 0.95])
plt.show()
total_ecoreg = df_finall.iloc[:12*17].sum() / df_finall.iloc[12*17]
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
spine.set_visible(False)
cmap = plt.get_cmap('OrRd')
min_val = 0
max_val = 1
norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))
ecos_info, ecos = get_ecos()
total_trans = np.log1p(total_ecoreg.values.astype('float'))/np.log1p(total_ecoreg.max())
patches = []
for info, ec in zip(ecos_info,ecos):
patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans[info['ECO_ID']] ))))
ax.add_collection(PatchCollection(patches, match_original= True, zorder=2))
title = 'Index Burned Area 2001-2017'
cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal")
cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('totalecologstd', dpi=1200, bbox_inches='tight')
%qtconsole
areas_biome = df_finall.loc['Atributos'].loc['AREAS'].groupby(biome_nums).sum()
biome_grouped = df_finall[:][:12*17].groupby(df_finall.loc['Atributos'].loc['BIOME_NUM'], axis=1)
total_biome = biome_grouped.sum().sum()
total_biome_area = total_biome/areas_biome
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
spine.set_visible(False)
cmap = plt.get_cmap('OrRd')
min_val = 0
max_val = int(total_biome_area.max()) +1
norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))
ecos_info, ecos = get_ecos()
#total_trans = np.log(total_pa + 1)/np.log(total_pa.max() + 1)
patches = []
for info, ec in zip(ecos_info,ecos):
patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_biome_area[info['BIOME_NUM']] )))) if info['BIOME_NAME'] \
!= 'N/A' else patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_biome_area[0] ))))
ax.add_collection(PatchCollection(patches, match_original= True, zorder=2))
title = 'Biomes Burned Px / Area 2001-2017'
cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal")
cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('biomesnotransform2', dpi=1200, bbox_inches='tight')
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
spine.set_visible(False)
cmap = plt.get_cmap('OrRd')
min_val = 0
max_val = 1
norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))
ecos_info, ecos = get_ecos()
total_trans = np.log1p(total_biome_area)/np.log1p(total_biome_area.max())
patches = []
for info, ec in zip(ecos_info,ecos):
patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans[info['BIOME_NUM']] )))) if info['BIOME_NAME'] \
!= 'N/A' else patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans[0] )))) #cuidado estou a eliminar rock
ax.add_collection(PatchCollection(patches, match_original= True, zorder=2))
title = 'Biomes Index Burned 2001-2017'
cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal")
cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('biomeslogtransform2', dpi=1200, bbox_inches='tight')
%%HTML
<img src="biomeslogtransform2.png">
intereco =[ df_finall[n*12: (n+1) *12].sum()/areas for n in range(17)]
intereco_max= max(map(max,intereco))
years = [str(y) for y in range(2001,2018)]
for yr in range(17):
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
spine.set_visible(False)
cmap = plt.get_cmap('OrRd')
min_val = 0
max_val = 1
norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))
ecos_info, ecos = get_ecos()
total_trans = np.log1p(intereco[yr])/np.log1p(intereco_max)
patches = []
for info, ec in zip(ecos_info,ecos):
patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans[info['ECO_ID']] ))))
ax.add_collection(PatchCollection(patches, match_original= True, zorder=2))
title = 'Index Burned Area ' + years[yr]
cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal")
cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('ecologstd' + years[yr], dpi=1200, bbox_inches='tight')
yr = 16
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
spine.set_visible(False)
cmap = plt.get_cmap('OrRd')
min_val = 0
max_val = 1
norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))
ecos_info, ecos = get_ecos()
total_trans = np.log1p(intereco[yr])/np.log1p(intereco_max)
patches = []
for info, ec in zip(ecos_info,ecos):
patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans[info['ECO_ID']] ))))
ax.add_collection(PatchCollection(patches, match_original= True, zorder=2))
title = 'Index Burned Area ' + years[yr]
cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal")
cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('ecologstd' + years[yr], dpi=1200, bbox_inches='tight')
denominador = np.log1p(max(map(max,annual_biome)))
for yr in range(17):
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
spine.set_visible(False)
cmap = plt.get_cmap('OrRd')
min_val = 0
max_val = 1
norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))
ecos_info, ecos = get_ecos()
total_trans = np.log1p(annual_biome[yr])/denominador
patches = []
for info, ec in zip(ecos_info,ecos):
patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.loc[info['BIOME_NUM']] )))) if info['BIOME_NAME'] \
!= 'N/A' else patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.iloc[0] )))) #cuidado estou a eliminar rock
ax.add_collection(PatchCollection(patches, match_original= True, zorder=2))
title = 'Biomes Index Burned' + years[yr]
cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal")
cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('biomeslogtransform' + years[yr], dpi=1200, bbox_inches='tight')
denominador = np.log1p(max(map(max,annual_biome)))
yr = 16
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
spine.set_visible(False)
cmap = plt.get_cmap('OrRd')
min_val = 0
max_val = 1
norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))
ecos_info, ecos = get_ecos()
total_trans = np.log1p(annual_biome[yr])/denominador
patches = []
for info, ec in zip(ecos_info,ecos):
patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.loc[info['BIOME_NUM']] )))) if info['BIOME_NAME'] \
!= 'N/A' else patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.iloc[0] )))) #cuidado estou a eliminar rock
ax.add_collection(PatchCollection(patches, match_original= True, zorder=2))
title = 'Biomes Index Burned' + years[yr]
cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal")
cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('biomeslogtransform' + years[yr], dpi=1200, bbox_inches='tight')
open('df_finall','wb').write(pickle.dumps(df_finall))
monthly_biome = [ df_finall[n: 12*17:12].sum() for n in range(12)]
monthly_biome = [mb.groupby(biome_nums).sum()/areas_biome for mb in monthly_biome]
denominador2 = np.log1p(max([ mb.max() for mb in monthly_biome]))
denominador2
for mo in range(12):
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
spine.set_visible(False)
cmap = plt.get_cmap('OrRd')
min_val = 0
max_val = 1
norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))
ecos_info, ecos = get_ecos()
total_trans = np.log1p(monthly_biome[mo])/denominador2
patches = []
for info, ec in zip(ecos_info,ecos):
patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.loc[info['BIOME_NUM']] )))) if info['BIOME_NAME'] \
!= 'N/A' else patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.iloc[0] )))) #cuidado estou a eliminar rock
ax.add_collection(PatchCollection(patches, match_original= True, zorder=2))
title = 'Biomes Index Burned ' + calendar.month_name[mo + 1]
cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal")
cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('biomeslogtransform' + calendar.month_name[mo + 1], dpi=1200, bbox_inches='tight')
mo = 11
fig, ax = plt.subplots(figsize=(12, 8), frameon= False)
for spine in plt.gca().spines.values():
spine.set_visible(False)
cmap = plt.get_cmap('OrRd')
min_val = 0
max_val = 1
norm = cls.Normalize(min_val, max_val)
cmmapable = cm.ScalarMappable(norm, cmap)
cmmapable.set_array(range(min_val, max_val))
ecos_info, ecos = get_ecos()
total_trans = np.log1p(monthly_biome[mo])/denominador2
patches = []
for info, ec in zip(ecos_info,ecos):
patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.loc[info['BIOME_NUM']] )))) if info['BIOME_NAME'] \
!= 'N/A' else patches.append(Polygon(np.array(ec),True, color = cmap(norm(total_trans.iloc[0] )))) #cuidado estou a eliminar rock
ax.add_collection(PatchCollection(patches, match_original= True, zorder=2))
title = 'Biomes Index Burned ' + calendar.month_name[mo + 1]
cbaxes = inset_axes(ax, width="80%", height="1%", loc=3)
cb = plt.colorbar(cmmapable, cax=cbaxes,orientation="horizontal")
cb.set_label(title, fontsize=20, family='Times New Roman')
cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=15, family='Times New Roman')
plt.show()
fig.savefig('biomeslogtransform' + calendar.month_name[mo + 1], dpi=1200, bbox_inches='tight')
writer = ExcelWriter('comdezembro.xlsx',engine='xlsxwriter')
df_finall.to_excel(writer,sheet_name='Burned Pixels',engine='xlsxwriter')
writer.save()
%qtconsole